package com.employment.dao;

import com.mybatisflex.core.BaseMapper;
import com.mybatisflex.core.paginate.Page;
import com.employment.entity.Company;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 公司信息Mapper接口
 * 
 * @author Employment System
 * @since 1.0.0
 */
@Mapper
public interface CompanyMapper extends BaseMapper<Company> {

    /**
     * 根据公司名称查询公司
     *
     * @param companyName 公司名称
     * @return 公司信息
     */
    Company selectByCompanyName(@Param("companyName") String companyName);

    /**
     * 分页查询公司列表
     *
     * @param page     分页参数
     * @param industry 行业
     * @param city     城市
     * @param status   状态
     * @return 公司分页列表
     */
    Page<Company> selectCompanyPage(Page<Company> page,
                                   @Param("industry") String industry,
                                   @Param("city") String city,
                                   @Param("status") Integer status);

    /**
     * 根据用户ID查询关联的公司列表
     *
     * @param userId 用户ID
     * @return 公司列表
     */
    List<Company> selectByUserId(@Param("userId") Long userId);

    /**
     * 根据城市统计公司数量
     *
     * @return 城市公司数量统计
     */
    List<String> selectCityStats();
}